'use strict';
/**
 * @name egg框架初始化Ctx
 * @version 1.0.0
 * @content 处理一个通用的Ctx数据结构
 * @author xiech
 * @Time 2020年12月24日14:29:16
 */
// 系统参数 'env'
const systemParameter = ['app_key', 'user_nick', 'open_id', 'mini_app_id', 'access_token', 'sign', 'mix_nick', 'user_id', 'main_user_id', 'source_app_id'];
module.exports = {
  /**
   * getCtxDate 初始化数据结构
   *
   * @param {query} 缓存query
   * @param {body} 缓存内容
   * @return {result} 返回结果
   */
  async getCtxDate(query = {}, body = {}) {
    const {
      app,
    } = this;
    const result = {
      platform: 'taobao',
      env: 'egg',
      deployment: 'eggapi',
      data: {},
      cloud: {},
    };
    for (const key in query) {
      if (systemParameter.indexOf(key) >= 0) {
        result[key] = query[key];
        delete query[key];
      }
    }
    result.data = Object.assign(query, body);
    // 创建mongodb
    if (app.mongoose && app.mongoose.connections && app.mongoose.connections.length && app.mongoose.connections[0].db) {
      result.cloud.db = app.mongoose.connections[0].db;
    }
    // 创建mysql
    if (app.mysql) {
      result.cloud.dataspace = app.mysql;
    }
    // 增加top接口
    result.cloud.topApi = app.config.backClient;
    result.topSession = app.config.topSession;
    return result;
  },
};